A three-dimensional (3D) graphics pipeline may execute sampling. For example, the 3D graphics pipeline may calculate texture coordinates at a pixel shader, send the coordinates to a sampler for sampling, receive pixel data from the sampler at the pixel shader, and return an output from the shader to a render target. A 3D context associated with a page fault, however, cannot be switched without waiting. For example, a fault on a texture read may halt a graphics processing unit (GPU) and may not allow forward progress on other hardware contexts until sufficient forward progress is made to reach completion of a current primitive. Thus, a relatively large polygon having a relatively large number of page faults may cause a stall. In a windowed application, for example, a 3D hardware context that renders a graphical user interface (GUI) may not be scheduled and may result in an unresponsive platform when a fault is encountered.
Texture or page table management systems may be implemented in an application (e.g., MegaTextures from id Software) or a driver extension (e.g., AMD_sparse_texture from Advanced Micro Devices Inc., Tiled Textures from Microsoft Corporation) to page-in (make resident) a subset of textures into memory for rendering a current frame/view. Extensive changes, however, to an application, application programming interface (API), and/or driver may be required to support the systems. In addition, a graphics application may need to be page aware and/or fault aware, wherein the shader checks for fault codes returned by the sampler and writes out missing page identifiers to a buffer (e.g., unordered access view) to allow the application host code to upload missing pages. Moreover, without hardware support for tiled resources, the application may need to manage partitioning of textures into tiles with proper borders to allow filtering and relatively complex page look-ups in the shader. The shader may also be required to bypass hardware sampler filtering functions and compute using execution unit (EU) instructions since a GPU may not know a location of mip-maps and/or adjacent textures in a software-managed texture cache.